import 'package:get/get.dart';
import '../../../services/user_service.dart';

class ProfileController extends GetxController {
  // 获取UserService实例
  final UserService _userService = Get.find<UserService>();
  
  // 用户信息getter
  UserService get userService => _userService;
  
  // 编辑模式状态
  final RxBool isEditing = false.obs;
  
  // 输入控制器
  final RxString nickName = ''.obs;
  final RxString email = ''.obs;
  final RxString phone = ''.obs;
  
  // 加载状态
  final RxBool isLoading = false.obs;
  
  // 开始编辑个人资料
  void startEditing() {
    // 加载当前值到编辑字段
    nickName.value = _userService.nickName;
    email.value = _userService.currentUser?.email ?? '';
    phone.value = _userService.currentUser?.phonenumber ?? '';
    
    isEditing.value = true;
  }
  
  // 取消编辑
  void cancelEditing() {
    isEditing.value = false;
  }
  
  // 保存个人资料
  Future<void> saveProfile() async {
    try {
      isLoading.value = true;
      
      // 在这里实现调用API保存用户信息
      // 这是模拟代码，实际实现需要根据后端API来写
      // 实现实际的API调用
      
      // 更新本地用户信息
      await _userService.getUserInfo();
      
      isEditing.value = false;
      Get.snackbar('成功', '个人资料已更新');
    } catch (e) {
      Get.snackbar('错误', '更新个人资料失败: ${e.toString()}');
    } finally {
      isLoading.value = false;
    }
  }
  
  @override
  void onInit() {
    super.onInit();
    // 初始化
    refreshUserInfo();
  }
  
  // 刷新用户信息
  Future<void> refreshUserInfo() async {
    try {
      isLoading.value = true;
      await _userService.getUserInfo();
    } catch (e) {
      Get.snackbar('错误', '获取用户信息失败: ${e.toString()}');
    } finally {
      isLoading.value = false;
    }
  }
} 